package partTwo;
/**本类用于进行OOP综合练习*/
public class TestPackage {
    public static void main(String[] args) {
        Teacher3 t = new Teacher3();//6.调用无参构造创建对象
        //7.由于private将Teacher类中的属性都封装了,外界无法直接使用,所以需要使用set()/get()
        //t.name;//报错:The field Teacher.name is not visible
        System.out.println(t.getName());//如果没有设置值或者是设置没有成功，获取的是默认值null
        t.setName("鲁智深");
        System.out.println(t.getName());

        //8.直接调用全参构造来创建对象并且给对象的属性赋值
        Teacher3 t2 = new Teacher3("李逵","壮汉",28,300);
        System.out.println(t2.getName()+t2.getAge()+t2.getGender()+t2.getSalary());
    }
}
//1.创建Teacher类
class Teacher3{/**1.属性  2.get()/set() 3.构造方法*/
//2.1提供属性
//2.2对属性进行封装--通过private关键字进行封装
private String name;
    private String gender;
    private int age;
    private double salary;

    /**如果什么构造方法都没有添加,默认会存在无参构造
     * 我们创建了丰富的构造方法,是为了给外界提供创建本类对象的多种方式
     * 如果自定了含参构造,默认的无参构造会被覆盖,注意手动添加哦
     * */
    //3.添加无参构造方法
    public Teacher3() {
        System.out.println("我是无参构造");
    }
    //4.添加全参构造方法
    public Teacher3(String n,String g,int a,double s) {
        //5.在构造方法中为成员变量进行赋值
        name = n;//n是局部变量也就是用户调用此构造传入的参数,把参数赋值给成员变量name
        gender = g;
        age = a;
        salary = s;
        System.out.println("我是全参构造");
    }

    //2.3需要给外界提供公共的属性设置与访问方式
    //快捷方法:右键空白处-->Source-->Genreate Getters and Setters-->select All-->Generate生成即可
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
}